package com.parenting.service;

import com.parenting.entities.OrdersDO;
import com.baomidou.mybatisplus.extension.service.IService;
import com.parenting.model.IMPage;
import com.parenting.request.AlreadyRefundRequest;
import com.parenting.request.OrderSearchListCriteriaRequest;
import com.parenting.request.PendingRefundRequest;
import com.parenting.request.RefundRequest;
import com.parenting.request.platform.SearchCriteriaRequest;
import com.parenting.response.OrderListResponse;
import com.parenting.response.OrderStatisticsResponse;
import com.parenting.response.RefundListResponse;
import com.parenting.response.RefuseRefundResponse;
import com.parenting.response.platform.OrderPageListResponse;
import org.springframework.web.bind.annotation.PathVariable;

/**
 * <p>
 * 订单表  服务类
 * </p>
 *
 * @author 烟台业达-王世玺
 * @since 2021-09-18
 */
public interface OrdersService extends IService<OrdersDO> {

    /****
     * 订单列表查询
     * @param request
     * @return
     */
      IMPage<OrderListResponse> getOrderList(OrderSearchListCriteriaRequest request,String shopId);

    /****
     *  审核通知
     * @param
     * @return
     */
      IMPage<RefundListResponse> getRefundList(RefundRequest refundRequest, String shopId);


    /***
     * 通过退款
     * @param orderId
     */
    void   ByRefund(String orderId);

    /***
     * 拒绝退款
     * @param refuseRefundResponse
     */
    void RefuseRefund(RefuseRefundResponse refuseRefundResponse);


    /****
     * 微信 待审批列表
     * @param request
     * @param shopId
     * @return
     */
    IMPage<RefundListResponse> getPendingRefundList(PendingRefundRequest request, String shopId);

    /***
     * 微信 已审批列表
     * @param request
     * @param shopId
     * @return
     */
    IMPage<RefundListResponse>  getAlreadyRefundList (AlreadyRefundRequest request, String shopId);


    /****
     * 平台版本 订单列表查询
      * @param request
     * @return
     */
    IMPage<OrderPageListResponse> getPlatformOrderList(SearchCriteriaRequest request);


    /**
     * 订单数字统计
     * @param type
     * @param shopId
     * @return
     */
    OrderStatisticsResponse situation(String type,String shopId);
}
